package layui.layui.pojo;

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/*
layui table组件从后台调用时返回值有固定格式，其中必须字段有4个，形式如下：
{
"code": 0,
"msg": "",
"count": 1000,
"data": [{}, {}]
}
参考链接：http://www.manongjc.com/detail/12-opcahmxhgwgtltw.html
 */
@Data
public class Response<T> implements Serializable {
    // 成功
    public static final String RESULT_SUCCESS = "success";
    // 可以预见但是不能处理的异常，如SQLException，IOException等
    public static final String RESULT_ERROR = "error";

    private static final long seriaVersionUID = 1;

    // 标识变量
    private String result = RESULT_SUCCESS;

    // 数组，存放业务失败提示
    private String msg;

    // 对象，存放字段格式错误信息
    private String error;

    private Integer code;

    private Integer count;

    private List<T> data;

    public Response() {
        // 1表示初始化capacity为1
//        msg = new ArrayList<String>(1);
        msg = "";

        code = 0;

    }

    public Response<T> addData(T t) {
        if(data == null) {
            data = new ArrayList<T>();
            data.add(t);
        } else {
            data.add(t);
        }
        return this;
    }
}
